---
title: lefthook
description: Kjør Ultracite automatisk på dine staged Git-filer med lefthook
---

Ultracite tilbyr sømløs integrasjon med [lefthook](https://lefthook.dev/), en rask og kraftig manager for Git-hooks. Denne integrasjonen setter automatisk opp pre-commit hooks for å sikre at koden din er riktig formatert før hver commit.

## Hva er lefthook?

lefthook er en rask, native manager for Git-hooks for Node.js- og Go-prosjekter. Den er designet for å være enkel, rask og kraftig, og lar deg administrere Git-hooks på tvers av teamet ditt med konfigurasjonsfiler som kan committes til depotet ditt.

## Hvordan Ultracite bruker lefthook

Når du initialiserer Ultracite i prosjektet ditt, kan det automatisk konfigurere lefthook til å kjøre kodeformattering før hver commit. Dette sikrer at:

- All commitet kode følger konsekvente formateringsstandarder
- Kvalitetskontroller for kode håndheves automatisk
- Teammedlemmer trenger ikke å huske å formatere kode manuelt
- Depotet ditt opprettholder en ren og konsistent kodestil

## Oppførsel for pre-commit-hook

Ultracites lefthook-integrasjon oppretter en pre-commit hook som kjører følgende kommando:

```bash
npx ultracite fix
```

Denne kommandoen:
- Kjører Biomes linter og formatter på kodebasen din
- Retter formateringsproblemer automatisk der det er mulig
- Sikrer at alle staged filer oppfyller prosjektets kodestandarder
- Forhindrer commits som ville introdusere formateringsinkonsistenser

## Automatisk oppsett

Under initialiseringsprosessen (`ultracite init`), hvis du velger lefthook-alternativet, så gjør Ultracite følgende:

1. **Installerer lefthook**: Legger til lefthook som en utviklingsavhengighet i prosjektet ditt
2. **Initialiserer lefthook**: Kjører `lefthook install` for å sette opp Git-hooks
3. **Oppretter konfigurasjon**: Setter opp `lefthook.yml`-filen med formateringskommandoen
4. **Håndterer eksisterende oppsett**: Hvis du allerede har lefthook konfigurert, oppdaterer det eksisterende oppsettet ditt i stedet for å overskrive det

## Integrasjonsdetaljer

Lefthook-integrasjonen inkluderer flere smarte funksjoner:

### Håndtering av avhengigheter
- Installerer automatisk lefthook som en dev-avhengighet ved hjelp av prosjektets pakkebehandler
- Bruker riktig kommando for pakkebehandleren (`npm install -D`, `yarn add -D`, `pnpm add -D`, osv.)
- Kjører `lefthook install` for å initialisere Git-hooks

### Konfigurasjonshåndtering
- **Nye prosjekter**: Oppretter en ny `lefthook.yml`-fil med ultracite fix-kommandoen
- **Eksisterende prosjekter**: Legger til Ultracite-kommandoen i din eksisterende lefthook-konfigurasjon, og bevarer andre hooks du måtte ha konfigurert

### Filstruktur
Integrasjonen oppretter eller endrer:
```
lefthook.yml    # Contains the formatting command configuration
```

## Fordeler

- **Teamkonsistens**: Hvert teammedlem får samme formatering anvendt automatisk
- **Ingen konfigurasjon**: Fungerer umiddelbart med fornuftige standardinnstillinger
- **Høy ytelse**: lefthook er skrevet i Go og er svært rask
- **Fleksibilitet**: Enkel å utvide med ytterligere kommandoer og hooks
- **Tverrplattform**: Fungerer konsekvent på tvers av ulike operativsystemer

## Integrasjon i arbeidsflyten

Lefthook-integrasjonen passer sømløst inn i utviklingsarbeidsflyten din:

1. **Utvikler gjør endringer** i kodefiler
2. **Stager filer** for commit med `git add`
3. **Forsøker å committe** med `git commit`
4. **lefthook trigges** pre-commit hooken automatisk
5. **Ultracite kjører** og formaterer de staged filene
6. **Commit fortsetter** hvis formateringen lykkes, eller **mislykkes** hvis det er problemer som ikke kunne fikses automatisk

## Tilpasning

Selv om Ultracite setter opp fornuftige standarder, kan du tilpasse oppførselen:

- Endre `lefthook.yml` for å legge til flere kommandoer eller hooks
- Konfigurer Biome-innstillinger for å justere formateringsregler
- Legg til andre pre-commit-sjekker ved siden av Ultracites formatering
- Bruk lefthooks kraftige parallelle kjøring og betingelseslogikk-funksjoner

## Feilsøking

### Hook kjører ikke
Hvis pre-commit hooken ikke kjøres:
- Sørg for at lefthook er installert: `npm ls lefthook`
- Sjekk at `lefthook.yml` eksisterer og inneholder ultracite-kommandoen
- Verifiser at Git-hooks er aktivert i depotet ditt
- Kjør `lefthook install` for å reinstallere hooks

### Tillatelsesproblemer
lefthook håndterer Git-hook-tillatelser automatisk, men hvis du opplever problemer:
- Prøv å kjøre `lefthook install` igjen
- Sjekk at Git-konfigurasjonen din tillater hooks

### Omgå hooks
I sjeldne tilfeller hvor du må hoppe over pre-commit hooken:
```bash
git commit --no-verify
```

Bruk dette sparsomt, da det omgår den automatiske formateringen som holder kodebasen konsistent.

## Konfigurasjonseksempel

Slik ser `lefthook.yml`-konfigurasjonen ut:

```yaml
pre-commit:
  jobs:
    - run: npx ultracite fix
      glob: 
        - "*.js"
        - "*.jsx"
        - "*.ts"
        - "*.tsx"
        - "*.json"
        - "*.jsonc"
        - "*.css"
      stage_fixed: true
```

Denne konfigurasjonen:
- Kjører kun på JavaScript-, TypeScript-, JSON- og CSS-filer
- Stager automatisk alle filer som ble fikset av formattereren
- Bruker den effektive `jobs`-syntaksen for bedre ytelse

Du kan utvide denne konfigurasjonen til å inkludere flere jobber:

```yaml
pre-commit:
  jobs:
    - run: npx ultracite fix
      glob: 
        - "*.js"
        - "*.jsx"
        - "*.ts"
        - "*.tsx"
        - "*.json"
        - "*.jsonc"
        - "*.css"
      stage_fixed: true
    - run: npm test
      glob: "*.{js,ts}"
    - run: tsc --noEmit
      glob: "*.{ts,tsx}"
```